package ru.ifmo.filemanager.filesystem;

import java.io.IOException;

import ru.ifmo.filemanager.filesystem.abstractplugin.AbstractDirectory;
import ru.ifmo.filemanager.filesystem.interfaces.DirectoryListReceiver;
import ru.ifmo.filemanager.filesystem.interfaces.DirectoryLookupReceiver;
import ru.ifmo.filemanager.filesystem.interfaces.FileSystemObject;

public abstract class AbstractVirtualDirectory extends AbstractDirectory {

	public abstract String[] list() throws IOException;

	public void listAsync(DirectoryListReceiver receiver) {
		DirectoryListTask.run(this, receiver);
	}
	
	public abstract FileSystemObject lookup(String name) throws IOException;

	public void lookupAsync(String name, DirectoryLookupReceiver receiver) {
		DirectoryLookupTask.run(this, name, receiver);
	}
}